home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
thinkref
/
archive
/
THINKPascalUH2.1.sea
/
THINKPas Univ Hdr 2.1
/
Interfaces
/
Retrace.p
< prev
next >
Wrap
Text File
|
1995-09-12
|
3KB
|
110 lines
{ Converted with MPW2TPas Tuesday, September 12, 1995 9:23:02 PM }
{
File: Retrace.p
Contains: Vertical Retrace Interfaces.
Version: Technology: System 7.5
Package: Universal Interfaces 2.1 in “MPW Latest” on ETO #18
Copyright: © 1984-1995 by Apple Computer, Inc.
All rights reserved.
Bugs?: If you find a problem with this file, use the Apple Bug Reporter
stack. Include the file and version information (from above)
in the problem description and send to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
}
UNIT Retrace;
INTERFACE
{$IFC UNDEFINED __RETRACE__}
{$SETC __RETRACE__ := 1}
USES
ConditionalMacros, Types, OSUtils;
{ $PUSH}
{ $ALIGN MAC68K}
{ $LibExport+}
TYPE
VBLTaskPtr = ^VBLTask;
{
VBLProcPtr uses register based parameters on the 68k and cannot
be written in or called from a high-level language without the help of
mixed mode or assembly glue.
In:
=> vblTaskPtr A0.L
}
VBLProcPtr = Register68kProcPtr; { register PROCEDURE VBL(vblTaskP: VBLTaskPtr); }
VBLUPP = UniversalProcPtr;
VBLTask = RECORD
qLink: QElemPtr;
qType: INTEGER;
vblAddr: VBLUPP;
vblCount: INTEGER;
vblPhase: INTEGER;
END;
CONST
uppVBLProcInfo = $00009802; { Register PROCEDURE (4 bytes in A0); }
FUNCTION NewVBLProc(userRoutine: VBLProcPtr): VBLUPP;
{$IFC NOT GENERATINGCFM }
INLINE $2E9F;
{$ENDC}
PROCEDURE CallVBLProc(vblTaskP: VBLTaskPtr; userRoutine: VBLUPP);
{$IFC NOT GENERATINGCFM}
{To be implemented: Glue to move parameters into registers.}
{$ENDC}
FUNCTION GetVBLQHdr: QHdrPtr;
{$IFC NOT GENERATINGCFM}
INLINE $2EBC, $0000, $0160;
{$ENDC}
FUNCTION SlotVInstall(vblBlockPtr: QElemPtr; theSlot: INTEGER): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $301F, $205F, $A06F, $3E80;
{$ENDC}
FUNCTION SlotVRemove(vblBlockPtr: QElemPtr; theSlot: INTEGER): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $301F, $205F, $A070, $3E80;
{$ENDC}
FUNCTION AttachVBL(theSlot: INTEGER): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $301F, $A071, $3E80;
{$ENDC}
FUNCTION DoVBLTask(theSlot: INTEGER): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $301F, $A072, $3E80;
{$ENDC}
FUNCTION VInstall(vblTaskPtr: QElemPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A033, $3E80;
{$ENDC}
FUNCTION VRemove(vblTaskPtr: QElemPtr): OSErr;
{$IFC NOT GENERATINGCFM}
INLINE $205F, $A034, $3E80;
{$ENDC}
{}
{ Custom Glue for 68k.}
{}
{ $ALIGN RESET}
{ $POP}
{$ENDC} {__RETRACE__}
IMPLEMENTATION
END.